#if !defined(__APP_BLUETOOTH_H)
#define __APP_BLUETOOTH_H
#include "app_device.h"

// 蓝牙波特率枚举
typedef enum
{
    BT_BAUD_9600 = '4',
    BT_BAUD_115200 = '8'
} BTBaudRate;

/**
 * @brief 检查蓝牙状态
 * @param device 设备
 * @return int 0-成功，非0-失败
 */
int app_bluetooth_checkStatus(Device *device);

/**
 * @brief 设置蓝牙波特率
 * @param device 设备
 * @param baudRate 波特率
 * @return int 0-成功，非0-失败
 */
int app_bluetooth_setBaudRate(Device *device, BTBaudRate baudRate);

/**
 * @brief 设置蓝牙网络ID
 * @param device 设备
 * @param net_id 网络ID
 * @return int 0-成功，非0-失败
 */
int app_bluetooth_setNetId(Device *device, char *net_id);

/**
 * @brief 设置蓝牙主设备地址
 * @param device 设备
 * @param maddr 主设备地址
 * @return int 0-成功，非0-失败
 */
int app_bluetooth_setMAddr(Device *device, char *maddr);

/**
 * @brief 重置蓝牙
 * @param device 设备
 * @return int 0-成功，非0-失败
 */
int app_bluetooth_reset(Device *device);

/**
 * @brief 蓝牙读前操作
 * @param device 设备
 * @param ptr 读缓冲区
 * @param len 读缓冲区长度
 * @return void
 */
void app_bluetooth_preWrite(Device *device, void *ptr, int *len);

/**
 * @brief 蓝牙读后操作
 * @param device 设备
 * @param ptr 读缓冲区
 * @param len 读缓冲区长度
 * @return void
 */
void app_bluetooth_postRead(Device *device, void *ptr, int *len);

#endif // __APP_BLUETOOTH_H